package LeetCode刷题;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2021-07-28 16:47
 * @description: Functions of this class is
 * 官方题解：
 * class Solution {
 *     private Node head;//设定一个双向链表的头节点
 *     private Node pre;//设定一个前置节点
 *     public Node treeToDoublyList(Node root) {
 *         if(root!=null){
 *             createList(root);//对所有节点进行构造双向链表操作
 *             //构造循环链表操作
 *             head.left=pre;//头节点的前一个为前置节点
 *             pre.right=head;//前置节点的下一个为头节点
 *         }
 *         return head;
 *     }
 *     private void createList(Node cur){
 *         if(cur!=null){
 *             createList(cur.left);//一直找左子树递归到第一个节点
 *
 *             //然后进行判断，构造双向链表
 *             if(pre!=null){
 *                 //如果是构造双向链表中间的节点
 *                 pre.right=cur;//直接把指针指过去即可
 *             }
 *             else{
 *                 //否则是构造头指针
 *                 head=cur;//把该节点作为头指针
 *             }
 *             cur.left=pre;//然后把前置节点付给当前节点的左节点
 *             pre=cur;//然后当前节点作为前置节点
 *
 *             createList(cur.right);//继续递归右子树
 *         }
 *     }
 * }
 **/
public class No二叉树转化为循环双向双向链表 {
    public static void main(String args[]){
    }
}